package org.example.utils;

import lombok.extern.slf4j.Slf4j;
import org.example.pojo.Result;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

@Slf4j
public class MultipartFileUtils {
    public static String saveMultipartFile(MultipartFile file,String thingPath,String thingType,int userId) {
        File destFile=new File("");
        try {
            // 1.检查文件
            if (file.isEmpty()) {
                return "Error:获取食谱图片失败";
            }
            // 2.生成新文件名
            String originalFilename = file.getOriginalFilename();
            String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
            String newFileName = UUID.randomUUID().toString() + suffix;
            // 3.创建保存目录
            String datePath = new SimpleDateFormat("yyyy/MM/dd").format(new Date());        //当前日期 加上2024/12/7
//            log.info("datePath=" + datePath);
            //    url组成     E盘前缀  +username   + 创建时间   +文件名
            File URL = new File(thingPath + "/"+thingType+"/" + userId + "/" + datePath);         //切割后的文件夹路径
//            log.info("URL=" + URL);
            if (!URL.exists()) {
                URL.mkdirs();      //要创建下面才能正常执行
            }
            // 4.保存文件
            destFile = new File(URL, newFileName);
            file.transferTo(destFile);
        }  catch (Exception e) {
            e.printStackTrace();
//            return "文件上传失败：" + e.getMessage();
            return "Error:未知错误";
        }
        String local_file_path=destFile.getAbsolutePath();
//        log.info("local_file_path=" + local_file_path);
        return local_file_path;
    }
}
